<?php
namespace Kuoqi\Input;

class Client{
	
	public $isOpt = false;
	
	public $method = 'get';//请求方式
	
	public $routestr = '';//路由部分的字段信息
	
	public $paramstr = '';//输入的param字段
	public $paramdef = null;//默认值
	public $paramfuc = '';//默认执行核验方法
	public $value = null;//待返回的值
	
	
	//设置参数信息
	public function setParamstr($str){
		$this->paramstr = $str;
		$arr = self::formatIpt($str);
		$this->method = $arr['method'];
		$this->routestr = $arr['_str'];
	}
	
	//设置默认值
	public function setDefault($default){
		$this->paramdef = $default;
	}
	
	//配置默认核验方法
	public function setCheckfunc($delFunc){
		$this->paramfuc = strtolower($delFunc);
	}
	
	//checkFunction-检查控制方法
	public function checkFunction(){
		switch($this->paramfuc){
			case 'array':Filter::FilterArray($this);break;//array
			case 'conts':Filter::FilterConts($this);break;//文本域转义
			case 'date':Filter::FilterDatetime($this);break;//datetime
			case 'datetime':Filter::FilterDatetime($this);break;//datetime
			case 'email':Filter::FilterEmail($this);break;//email
            case 'ignore':Filter::FilterIgnore($this);break;//ignore,以原样输出
			case 'int':Filter::FilterInt($this);break;//intval
			case 'intval':Filter::FilterInt($this);break;//intval
            case 'json':Filter::FilterJson($this);break;//json验证并自动回归为json的样式
			case 'md5':Filter::FilterMd5($this);break;//验证字段是否MD5，如果不是则直接为失败
			case 'phone':Filter::FilterPhone($this);break;//验证是否大陆手机号
			case 'string':Filter::FilterString($this);break;//string
			case 'tel':Filter::FilterPhone($this);break;//验证是否大陆手机号
			case 'username':Filter::FilterUsername($this);break;//用户名核验
			case 'urlencode':Filter::FilterUrlencode($this);break;//urlencode
			case 'urldecode':Filter::FilterUrldecode($this);break;//urldecode
			default:'';//这个什么都不做
		}
	}
	
	
	//checkDefault-检查默认字段信息
	public function checkDefault(){
			
	}
	
	
	//输入方法初始化
	static final function formatIptFunc($ipts){
		$opt = '';
		foreach($ipts as $v){
			$opt.= '["'.$v.'"]';
		}
		return $opt;
	}
	//对于输入模块的输入参数初始化
	static final function formatIpt($ipt){
		$opt = array();
		$opt['_str'] = '';
		$tmp = explode ('.',$ipt);
		if(isset($tmp[0])){
			$code = strtoupper($tmp[0]?$tmp[0]:'');
			switch($code){
				case 'GET':
					$opt['method'] = 'get';
					unset($tmp[0]);
					$opt['_str'] = self::formatIptFunc($tmp);
					break;
				case 'POST':
					$opt['method'] = 'post';
					unset($tmp[0]);
					$opt['_str'] = self::formatIptFunc($tmp);
					break;
				case 'REQUEST':
					$opt['method'] = 'request';
					unset($tmp[0]);
					$opt['_str'] = self::formatIptFunc($tmp);
					break;
				default:
					$opt['method'] = 'request';
					$opt['_str'] = self::formatIptFunc($tmp);
			}
		}
		return $opt;
	}
	
	//路由格式化
	static public function formatRoute($ipt){
		return ucwords($ipt);	
	}
	
}